''' 
装饰器：本质是函数，功能-->装饰其他函数（就是为其他函数添加附加功能）
原则：
    1、不能修改装饰的函数的源代码
    2、不能修改被装饰的函数的调用方式
列表生成式
    [i*2 for i in range(10)]
    ==>
    [0,2,4,6,8,10,12,14,16,18]
    ==>
    等同于
    a = []
    for i in range(10):
        a.append(i*2)
    ==>
    [0,2,4,6,8,10,12,14,16,18]   
    生成器，只有在调用时才会生成相应的数据
    (i*2 for i in range(10))]
    生成器只记录当前位置，只有一个__next__()方法
内置函数
'''